Avant tout, nous tenons à vous informer que ce projet vise à élaborer un tableau de bord dynamique permettant d’analyser les données des musiques les plus écoutées et de créer divers graphiques à l’aide du langage R. Ce tableau de bord inclura également un système de filtrage interactif.
Lien de ce dataset : https://www.kaggle.com/datasets/nelgiriyewithana/top-spotify-songs-2023
Ce jeu de données a été publié par l’utilisateur Nidula Elgiriyewithana ⚡ sur Kaggle, qui est un utilisateur ordinaire de cette plateforme mais qui a fusionné plusieurs API telles que celle de Spotify : https://developer.spotify.com/documentation/web-api/reference/get-multiple-artists (mentionnée après qu’une personne a demandé la source des données dans les commentaires), ainsi que celles de Shazam, Deezer et Apple Music. Ce jeu de données est mis à jour annuellement. De nombreux correctifs ont été mis en place pour résoudre des problèmes depuis sa création, tels que des données erronées, des erreurs système, et autres.
Lien de ce dataset : https://www.kaggle.com/datasets/estienneggx/spotify-unpopular-songs
Ce jeu de données a été publié par l’utilisateur ESTIENNEGGX sur Kaggle, qui est un utilisateur ordinaire de cette plateforme. Les données ont été récupérées en utilisant Python avec l’API de Spotify et la bibliothèque Spotipy. La méthodologie utilisée est la suivante : - Récupération des albums impopulaires (l’API de Spotify ne permet pas de récupérer directement les chansons impopulaires) - Récupération des identifiants des chansons à partir des albums - Récupération des caractéristiques audio des chansons. La dernière modification de ce jeu de données remonte à plus d’un an.
Lien de ce dataset : https://www.kaggle.com/datasets/sveta151/spotify-top-chart-songs-2022?resource=download
Ce jeu de données a été publié par l’utilisateur SVETA151 sur Kaggle, qui est un utilisateur ordinaire de cette plateforme. Les données proviennent à l’origine de la plateforme “Top Chart Spotify Global”. Le “Top Chart Spotify Global” est une liste des chansons les plus populaires dans le monde entier, selon les statistiques de streaming sur la plateforme Spotify. Les données y sont régulièrement mises à jour.
L’arrivée du streaming dans les années 2000 à transformé notre façon de consommer de la musique. L’auditeur d’aujourd’hui à un vaste choix d’artistes, d’albums, de style, de playlist simplement sur son téléphone et peut écouter sa musique partout même lorsqu’il n’a pas de connexion, cela compose une grande partie du marché de la musique. Il est également plus simple de se lancer dans la musique ainsi il y a beaucoup d’artistes. Si on se place du pdv d’une maison de disque, il peut être difficile de savoir qui signer ou non. En analysant les données des musiques les plus populaires peut être pouvons nous essayer d’établir ce qui plait le plus au consommateur sans pour autant s’attendre à une recette miracle, simplement observer les tendances et même peut être tenter de prévoir ce qui fonctionnera à l’avenir.
track_name
artist(s)_name
artist_count
released_year
released_month
released_day
in_spotify_playlists
in_spotify_charts
streams
in_apple_playlists
in_apple_charts
in_deezer_playlists
in_deezer_charts
in_shazam_charts
bpm
key
mode
danceability_%
valence_%
energy_%
acousticness_%
instrumentalness_%
liveness_%
speechiness_%
danceability
energy
key
loudness
mode
speechiness
acousticness
instrumentalness
liveness
valence
tempo
duration_ms
explicit
popularity
track_name
track_artist
track_id
uri
artist_names
track_name
peak_rank
weeks_on_chart
danceability
energy
key
loudness
mode
speechiness
acousticness
instrumentalness
liveness
tempo
time_signature
duration_ms
Existe-t-il des différences significatives dans les chansons les plus populaires sur chaque plateforme ?
Pour répondre à cette problématique, nous allons utiliser les données suivantes : - Inclusion dans les playlists et les classements : Nous examinerons le nombre de playlists et les classements sur chaque plateforme (Spotify, Apple Music, Deezer, Shazam) dans lesquels une chanson est présente. - Nombre total de streams : Nous comparerons le nombre total de streams sur chaque plateforme pour évaluer la popularité relative des chansons. - Caractéristiques audio : Nous analyserons les caractéristiques audio telles que le tempo, l’énergie, la positivité musicale, etc., pour comprendre les préférences des utilisateurs sur chaque plateforme. - Variations temporelles : Nous étudierons les tendances temporelles dans les classements et la popularité des chansons pour identifier toute fluctuation significative sur chaque plateforme au fil du temps.
Selon les musiques qu’elle met en playlist et le classement parmi les musiques les plus écoutées sur la plateforme. On espère pouvoir observer qu’une plateforme se démarque des autres mais il est possible qu’il n’y ait pas forcément de différence significative qui nous permettent d’établir la supériorité d’une plateforme par rapport aux autres en termes d’influence. Les variables que nous souhaitons utiliser sont les suivantes: - in_spotify_playlists: Number of Spotify playlists the song is included in - in_spotify_charts: Presence and rank of the song on Spotify charts - streams: Total number of streams on Spotify - in_apple_playlists: Number of Apple Music playlists the song is included in - in_apple_charts: Presence and rank of the song on Apple Music charts - in_deezer_playlists: Number of Deezer playlists the song is included in - in_deezer_charts: Presence and rank of the song on Deezer charts
Nous pouvons comparer le nombre de playlists dans lesquelles une ou plusieurs chansons (nous n’allons peut-être pas toutes les comparer), que nous aurons sélectionné au préalable (nous n’avons pas encore établi selon quels critères), sont présentes selon chaque plateforme de streaming. Nous pouvons également comparer la place de la chanson dans le classement des musiques pour chaque plateforme et voir si la présence de cette chanson en playlist a une influence sur son classement et ainsi voir sur quelle plateforme elle est la plus populaire. Le manque de données sur le nombre total de streams sur les plateformes Apple Music et Deezer est une vraie limite, puisque nous aurions pu le comparer avec Spotify, De plus si nous avions eu aussi le nombre total d’utilisateurs de chaque plateforme nous aurions pu étayer notre analyse en prenant en considération ces informations.
clean_track_name <- function(name) {
name <- stri_trans_general(name, "Latin-ASCII") # Transliterate to ASCII
name <- stri_replace_all_regex(name, "[^\x20-\x7E]", "") # Remove remaining non-ASCII characters
return(name)
}
# Apply cleaning function to track names
spotify_data_23_ordre_decroissant$track_name <- sapply(spotify_data_23_ordre_decroissant$track_name, clean_track_name)
# Filter and transform data for the bar plot
playlist_data <- spotify_data_23_ordre_decroissant %>%
select(track_name, in_spotify_playlists, in_apple_playlists, in_deezer_playlists) %>%
pivot_longer(cols = starts_with("in_"), names_to = "platform", values_to = "playlist_count")
# Rename platforms for better readability
playlist_data <- playlist_data %>%
mutate(platform = case_when(
platform == "in_spotify_playlists" ~ "Spotify",
platform == "in_apple_playlists" ~ "Apple Music",
platform == "in_deezer_playlists" ~ "Deezer",
TRUE ~ platform
))
# Aggregate playlist counts by track name
agg_playlist_data <- playlist_data %>%
group_by(track_name) %>%
summarise(total_playlists = sum(playlist_count)) %>%
arrange(desc(total_playlists))
# Select top 20 tracks
top_tracks <- agg_playlist_data %>%
slice_max(order_by = total_playlists, n = 20)
# Filter the original data to include only the top tracks
filtered_playlist_data <- playlist_data %>%
filter(track_name %in% top_tracks$track_name)
# Truncate track names for better readability in the plot
filtered_playlist_data <- filtered_playlist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20, paste0(str_sub(track_name, 1, 17), "..."), track_name))
# Create the bar plot
ggplot(filtered_playlist_data, aes(x = track_name, y = playlist_count, fill = platform)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Number of Playlists per Platform (Top 20 Tracks)", x = "Track Name", y = "Number of Playlists") +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
Analyse :
Le graphique est un histogramme intitulé “Nombre de playlists par plateforme (Top 20 des morceaux)”. Il affiche trois groupes de barres pour chaque morceau, représentant le nombre de playlists sur Apple Music, Deezer, et Spotify. L’axe vertical, étiqueté “Nombre de playlists”, varie de 0 à 40 000 avec des incréments de 5 000. L’axe horizontal énumère les 20 morceaux principaux. Chaque groupe de barres est coloré différemment selon la plateforme : bleu pour Apple Music, rouge pour Deezer, et vert pour Spotify.
Ce graphique est intéressant car il visualise la popularité des morceaux les plus écoutés sur trois grandes plateformes de streaming musical, en montrant la fréquence de leur inclusion dans les playlists. Il permet de comparer rapidement quels morceaux sont les plus souvent présents dans les playlists et comment cela diffère selon la plateforme. Cela suggère que Spotify est la plateforme la plus influente en matière de musique. Cependant, l’exactitude de ces données est incertaine puisque le dataset intitulé “SpotifyData” ne fournit pas d’informations sur la source des données des autres plateformes.
Autrement dit: observons nous la présence d’une ambiance en majorité parmi les chansons les plus populaires de 2023? Par ambiance nous entendons l’atmosphère qui se dégage de la musique, ce que l’on ressent en l’écoutant. Pour ce faire nous pourrons établir différentes catégories distinctes, différentes ambiances. Chacune sera définie par des critères en utilisant notre jeu de données (pas encore totalement établies). Pour établir ces critères nous utiliserons ces données: - mode: Mode of the song (major or minor) - danceability_%: Percentage indicating how suitable the song is for dancing - valence_%: Positivity of the song’s musical content - energy_%: Perceived energy level of the song
# Créer des catégories d'ambiance basées sur les caractéristiques audio
spotify_data <- spotify_data %>%
mutate(ambiance = case_when(
`energy_%` >= 70 & `valence_%` >= 70 ~ "Festive",
`energy_%` >= 70 & `valence_%` < 70 ~ "Énergique",
`energy_%` < 70 & `valence_%` >= 70 ~ "Positif",
`energy_%` < 70 & `valence_%` < 70 ~ "Calme",
TRUE ~ "Autre"
))
# Visualisation de la répartition des ambiances
ggplot(spotify_data, aes(x = ambiance, fill = ambiance)) +
geom_bar() +
labs(title = "Répartition des ambiances des chansons populaires en 2023",
x = "Ambiance",
y = "Nombre de chansons") +
theme_minimal()
Analyse : Le graphique nous montre la distribution des chansons populaires selon quatre catégories d’ambiance : Calme, Énergique, Festive et Positif. Voici quelques points clés que l’on peut en conclure :
Calme : La majorité des chansons populaires en 2023 sont de nature calme, avec plus de 400 chansons répertoriées dans cette catégorie. Cela indique une préférence notable du public pour des musiques apaisantes et relaxantes.
Énergique : La deuxième catégorie la plus populaire est celle des chansons énergiques, avec environ 250 chansons. Cela montre une appréciation significative pour des morceaux dynamiques et entraînants.
Festive et Positif : Les chansons festives et positives sont moins nombreuses, avec environ 150 chansons pour les ambiances festives et un peu plus de 100 pour les ambiances positives. Bien que moins populaires que les deux premières catégories, elles représentent tout de même une part importante du paysage musical de 2023.
Ici nous nous demandons simplement si une plage de tempo est particulièrement représentée dans notre jeu de donné. Nous utiliserons uniquement la donnée du bpm. - bpm: Beats per minute, a measure of song tempo
Nous comparerons les bpm des chanson les plus populaires en 2023 puis nous introniserons les bpm les plus populaires.
# Sélectionner les 1000 premières chansons les plus populaires
top_songs <- spotify_data %>%
arrange(desc(streams)) %>%
slice(1:1000)
# Créer des intervalles de BPM
top_songs <- mutate(top_songs, bpm_interval = cut(bpm, breaks = c(0, 50, 100, 150, 200, 250)))
# Compter le nombre de chansons dans chaque intervalle
bpm_counts <- count(top_songs, bpm_interval)
# 1. Histogramme de la distribution des BPM
ggplot(top_songs, aes(x = bpm)) +
geom_histogram(binwidth = 5, fill = "blue", color = "white", alpha = 0.7) +
labs(x = "BPM", y = "Nombre de chansons", title = "Distribution des BPM des 1000 premières chansons populaires") +
theme_minimal()
# 2. Boxplot des BPM par quartile de streams
top_songs <- top_songs %>%
mutate(streams_quartile = ntile(streams, 4))
ggplot(top_songs, aes(x = factor(streams_quartile), y = bpm)) +
geom_boxplot(fill = "purple", alpha = 0.6) +
labs(x = "Quartiles de popularité (streams)", y = "BPM", title = "Boxplot des BPM par quartile de popularité") +
theme_minimal()
# 3. Répartition des BPM par intervalles
ggplot(bpm_counts, aes(x = bpm_interval, y = n, fill = bpm_interval)) +
geom_bar(stat = "identity") +
scale_x_discrete(labels = c("0-50", "50-100", "100-150", "150-200", "200-250")) +
labs(x = "Intervalles de BPM", y = "Nombre de chansons", title = "Répartition des BPM des 1000 premières chansons populaires") +
theme_minimal() + scale_fill_brewer(palette = "Set2")
Analyse :
Le graphique illustre une distribution des BPM (battements par minute) des 1000 chansons les plus populaires en 2023. En observant les intervalles de BPM, on peut tirer quelques conclusions intéressantes :
0-50 BPM : Environ un quart des chansons sont des musiques lentes, ce qui suggère une appréciation persistante pour des rythmes plus calmes ou des ballades dans le paysage musical populaire.
50-100 BPM : Ce segment représente la majorité des chansons, avec plus de 50% des chansons ayant un BPM compris entre 50 et 100. Cela pourrait indiquer une tendance générale vers des tempos modérés à énergiques qui sont souvent associés à une écoute agréable et à une facilité de danse.
100-150 BPM : Bien qu’une proportion moindre de chansons populaires se situe dans cette plage de BPM, elle reste significative. Cela pourrait refléter une diversité dans les préférences musicales, où certains auditeurs sont attirés par des rythmes plus rapides et plus entraînants.
150-200 BPM : Ce segment représente une très petite proportion des chansons populaires. Cela suggère que les chansons à rythme très rapide sont moins courantes dans le paysage musical actuel, mais qu’elles ne sont pas totalement absentes, ce qui pourrait indiquer une appréciation persistante pour des genres musicaux spécifiques qui utilisent des tempos plus élevés.
En résumé, l’analyse du graphique révèle une diversité de BPM parmi les chansons populaires en 2023, allant des musiques lentes aux rythmes plus rapides, avec une concentration notable dans la plage de 50 à 100 BPM. Cela suggère une pluralité de goûts et de préférences dans la musique populaire contemporaine.
Nous comparerons la proportion de paroles dans une musique et verrons ce qui plait le plus en 2023. Pour cela nous utiliserons ces deux données: - instrumentalness_%: Amount of instrumental content in the song - speechiness_%: Amount of spoken words in the song
Cela nous permettra de savoir si un artiste doit plutôt investir dans l’instrumental ou dans les paroles. Malheureusement dans cette analyse nous ne pouvons pas évaluer la qualité des paroles (qui peut d’ailleurs être subjective), un pourcentage élevé de mots ne signifie pas forcément une richesse dans l’écriture non plus, cela peut simplement être la répétition d’un refrain par exemple, ce que nous ne pouvons établir non plus avec ce jeu de données.
spot_data_clean <- spotify22_data %>%
filter(!is.na(as.numeric(weeks_on_chart)))
best_songs <- spot_data_clean %>%
arrange(desc(weeks_on_chart)) %>%
slice(1:10)
best_songs$track_name <- sapply(best_songs$track_name, clean_track_name)
# Normaliser les pourcentages
best_songs <- best_songs %>%
mutate(instrumentalness_pct = instrumentalness / max(instrumentalness, na.rm = TRUE),
speechiness_pct = speechiness)
# Transformer les données pour le graphique
plot_data <- best_songs %>%
select(track_name, instrumentalness_pct, speechiness_pct) %>%
pivot_longer(cols = c(instrumentalness_pct, speechiness_pct),
names_to = "attribute", values_to = "value")
# Renommer les attributs
plot_data <- plot_data %>%
mutate(attribute = case_when(
attribute == "instrumentalness_pct" ~ "Instrumentalité",
attribute == "speechiness_pct" ~ "Paroles",
TRUE ~ attribute
))
# Abréger ou tronquer les noms des chansons
plot_data <- plot_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
# Créer le graphique à barres
ggplot(plot_data, aes(x = track_name, y = value, fill = attribute)) +
geom_bar(stat = "identity", position = "dodge", alpha = 0.6) +
labs(y = "Pourcentage normalisé (0-1)",
title = "Instrumentalité vs Paroles dans les Meilleures Chansons de 2022",
subtitle = "Pourcentage de Contenu Instrumental et de Paroles Parlées dans les Meilleures Chansons",
caption = "Source des données : Spotify") +
scale_fill_manual(name = "Attribut", values = c("Instrumentalité" = "blue", "Paroles" = "red")) +
scale_x_discrete(labels = function(x) stringr::str_wrap(x, width = 10)) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Analyse :
Sans trop de surprise on remarque une nette préférence chez les auditeurs pour des musiques comportant des paroles comparé aux morceaux purement instrumentaux. Ainsi il vaut mieux pour une maison de disque produire des chanteurs que des simples musiciens, si bien sûr c’est l’aspect commercial et économique qui les intéresse le plus.
Malheureusement dans cette analyse nous ne pouvons pas évaluer la qualité des paroles (qui peut d’ailleurs être subjective), un pourcentage élevé de mots ne signifie pas forcément une richesse dans l’écriture non plus, cela peut simplement être la répétition d’un refrain par exemple, ce que nous ne pouvons établir non plus avec ce jeu de données.
Dans notre jeu de données nous pouvons voir le nom des artistes qui ont sorti les musiques ainsi nous pouvons supposer que si des artistes reviennent souvent dans le classement, c’est qu’ils ont des auditeurs qui sont investis et reviennent souvent les écouter et n’écoutent pas qu’une chanson toute la discographie de l’artiste. Nous utiliserons ces données: - artist(s)_name: Name of the artist(s) of the song - artist_count: Number of artists contributing to the song - in_spotify_playlists: Number of Spotify playlists the song is included in - in_spotify_charts: Presence and rank of the song on Spotify charts - streams: Total number of streams on Spotify - in_apple_playlists: Number of Apple Music playlists the song is included in - in_apple_charts: Presence and rank of the song on Apple Music charts - in_deezer_playlists: Number of Deezer playlists the song is included in - in_deezer_charts: Presence and rank of the song on Deezer charts - in_shazam_charts: Presence and rank of the song on Shazam charts
Nous pouvons supposer que si un artiste n’est présent qu’une seule fois dans ce classement c’est parce qu’une de ses chansons à eu du succès auprès du grand public d’une manière générale, mais qu’il n’a pas forcément une grosse fanbase qui écoute toutes ses musiques dès qu’elles sortent. En observant la présence d’une musique en playlist nous pouvons voir si la musique à été poussée vers l’auditeur ou si sans être beaucoup en playlist elle a réussi à être populaire. De plus avec la présence de la musique sur shazam nous pouvons peut être établir si des gens qui n’étaient pas familier avec l’artiste l’ont découvert en écoutant la radio, ou alors en soirée, puisque lorsqu’on shazam une musique c’est souvent qu’on entend cette musique par hasard et qu’elle nous sans que l’on soit des grands connaisseurs de l’artiste, donc cela pourrait être le signe que l’artiste à bbcp ou pas de nouveaux auditeurs.
Seulement si on avait la liste du nombre d’auditeurs mensuels moyens des artistes de spotify nous pourrions avoir une idée plus claire de l’engagement des auditeurs envers un artiste. De plus, il est aussi possible qu’une musique n’ait pas été populaire parce qu’elle était en playliste mais qu’elle ait été en playlist parce qu’elle était déjà populaire. Nous ne savons pas dans quel ordre cela se fait.
Commençons par observer les tops artistes les plus présents dans le classement et les artistes les plus streamés:
# Nombre fois supérieur à 1 qu'un artist apparait dans le dataset 1
spotify_name23 <- spotify_data
spotify_name22 <- spotify22_data
spotifypaspop_name <- spotifyUnpopular_data
# Étape 1: Compter les apparitions de chaque artiste
artist_counts <- spotify_name23 %>%
count(`artist(s)_name`) %>%
filter(n > 1)
# Étape 2: Filtrer les artistes apparaissant plus d'une fois
# Étape 3: Créer un graphique à barres pour dataset 2023
artist_counts <- spotify_data_23_ordre_decroissant %>%
count(`artist(s)_name`) %>%
filter(n > 1)
top_n <- 20
top_artists <- artist_counts %>%
top_n(top_n, wt = n) %>%
pull(`artist(s)_name`)
artist_counts_top <- artist_counts %>%
filter(`artist(s)_name` %in% top_artists)
ggplot(artist_counts_top, aes(x = reorder(`artist(s)_name`, desc(n)), y = n)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = n), vjust = -0.5, size = 3) +
labs(title = "Top 20 des artistes les plus fréquents",
x = "Artiste",
y = "Nombre d'apparitions") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#Stream par artiste
# Convertir les streams en entiers
# Nettoyage des données
# Suppression des caractères non numériques
spotify_data_23_ordre_decroissant$streams <- gsub("[^0-9]", "", spotify_data_23_ordre_decroissant$streams)
# Conversion en integer avec gestion des NA directement
spotify_data_23_ordre_decroissant$streams <- suppressWarnings(as.integer(spotify_data_23_ordre_decroissant$streams))
spotify_data_23_ordre_decroissant$streams[is.na(spotify_data_23_ordre_decroissant$streams)] <- 0
# Calculer le nombre total de streams par artiste
top_artists_streams <- spotify_data_23_ordre_decroissant %>% # Utiliser le dataset 2023
group_by(`artist(s)_name`) %>% # Regrouper par artiste
summarise(total_streams = sum(streams)) %>%
top_n(20, total_streams) %>%
arrange(desc(total_streams))
# Création graphique à barres pour les streams par artiste
ggplot(top_artists_streams, aes(x = reorder(`artist(s)_name`, total_streams), y = total_streams)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = scales::comma(total_streams)),
hjust = -0.1, size = 3) +
labs(title = "Top 20 des artistes avec le plus de streams",
x = "Artiste",
y = "Nombre total de streams") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
coord_flip()
Analyse :
Le premier graphique nous donne le top 20 des artistes dont le nom revient le plus souvent dans notre base de donnée, ici Les musiques plus écoutés sur Spotify en 2023. Ainsi ce sont les artistes qui ont le plus de musique dans le top 2023 de spotify. Nous aimerions savoir quels artistes parmi cette échantillon de 20 artistes ont une communauté de fan engagé. Selon toute logique si un artiste a beaucoup de titre alors il devrait également avoir beaucoup de stream.
Le deuxième graphique nous permet donc d’avoir le classement des artistes qui enregistrent le plus de stream. On remarque immédiatement que Taylor Swift est première dans les deux classements, elle a en tout 34 musiques dans le classement et est celle qui est le plus écouté avec plus de 10 milliards de stream, les résultats sont donc cohérents.
#Nombre de streams pour chaque titre d'un artiste
spotify_data$streams <- suppressWarnings(as.integer(spotify_data$streams))
#Choisir le nom de l'artiste
chosen_artist <- "Taylor Swift"
spotify_data$`artist(s)_name` <- iconv(spotify_data$`artist(s)_name`, to = "UTF-8")
artist_data <- suppressWarnings({
spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
})
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$streams), ]
# Calculez la marge pour un affichage optimal
max_streams <- max(plot_data$streams)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, streams), y = streams)) +
geom_bar(stat = "identity", fill = "lightgreen", width = 0.8) + # Réduire la largeur des barres
geom_text(aes(label = scales::comma(streams)),
hjust = -0.1, size = 3.5, nudge_y = 0) + # Positionner légèrement à l'extérieur des barres
coord_flip() + # Retourner le graphique
ylim(0, y_limit) + # Ajouter de l'espace au-dessus des barres
labs(title = paste("Streams par Chanson pour", chosen_artist),
x = "Titres",
y = "Nombre de streams") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 1))
Analyse :
Si on regarde plus en détaille le nombre de streams par musique le nombre de streams n’est pas homogène mais élevé pour chacun des sons, le moins streamé etant tout de même au dessus de 30 millions. Des titres étant sorti il y a des années sont toujours très écoutés comme Shake It Off, sorti en 2014. Le fait qu’elle soit allé en tournée mondiale peut aussi expliquer ces chiffres ainsi on peut en déduire qu’elle a une audience investit et qui la suit, qui écoute ses chansons même ancienne et qui probablement va la voir en concert.
#Apparition de la chanson en playlist
spotify_data$in_spotify_playlists <- as.integer(spotify_data$in_spotify_playlists)
#coisir le nom de l'artiste
chosen_artist <- "Taylor Swift"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$in_spotify_playlists), ]
# Calculez la marge pour un affichage optimal
max_streams <- max(plot_data$in_spotify_playlists)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, in_spotify_playlists), y = in_spotify_playlists)) +
geom_bar(stat = "identity", fill = "purple", width = 0.8) + # Réduire la largeur des barres
geom_text(aes(label = scales::comma(in_spotify_playlists)),
hjust = -0.1, size = 3.5, nudge_y = 0) + # Positionner légèrement à l'extérieur des barres
coord_flip() + # Retourner le graphique
ylim(0, y_limit) + # Ajouter de l'espace au-dessus des barres
labs(title = paste("Apparition en playlist par Chanson pour", chosen_artist),
x = "Titres",
y = "Nombre d'apparition en playlist") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 1))
Analyse :
On peut également remarquer une corrélation entre le nombre d’écoute et la présence du son en playlist, qui est généralement élevé. En effet si on compare les deux graphiques on observe que l’ordre des titres est assez similaire donc on peut déduire qu’il y a un lien entre la présence en playlist d’un titre et son nombre de stream. On ne sait cependant pas si le son est rentré en playlist parce qu’il était déjà beaucoup écouté ou si il est beaucoup écouté parce qu’il est en playlist. Toutefois même les sons les moins présents en playlist sont très écouté, Better Than Revenge sorti en 2010 et présent uniquement 86 fois en playlist cumule plus de 30 millions de streams. Nous pouvons estimer que cela est un indicateur pertinent sur l’engagement de sa fan base.
En revanche The Weeknd le deuxième artiste qui a le plus de chanson dans le classement, 22 titres en tout, n’est pas dans le top 20 des artistes les plus streamés. Ce qui ressort à l’issue de cette observation c’est qu’il a à chaque fois assez d’auditeurs pour être dans le classement des musiques les plus écouté mais qu’il n’est pas assez mainstream pour être dans le top des artistes les plus streamés.
#Nombre de stream
spotify_data$streams <- as.integer(spotify_data$streams)
#Choisir le nom de l'artiste
chosen_artist <- "The Weeknd"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$streams), ]
# Calculez la marge pour un affichage optimal
max_streams <- max(plot_data$streams)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, streams), y = streams)) +
geom_bar(stat = "identity", fill = "lightgreen", width = 0.8) + # Réduire la largeur des barres
geom_text(aes(label = scales::comma(streams)),
hjust = -0.1, size = 3.5, nudge_y = 0) + # Positionner légèrement à l'extérieur des barres
coord_flip() + # Retourner le graphique
ylim(0, y_limit) + # Ajouter de l'espace au-dessus des barres
labs(title = paste("Streams par Chanson pour", chosen_artist),
x = "Titres",
y = "Nombre de streams") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 1))
#Apparition de la chanson en playlist
spotify_data$in_spotify_playlists <- as.integer(spotify_data$in_spotify_playlists)
#coisir le nom de l'artiste
chosen_artist <- "The Weeknd"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$in_spotify_playlists), ]
# Calculez la marge
max_streams <- max(plot_data$in_spotify_playlists)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, in_spotify_playlists), y = in_spotify_playlists)) +
geom_bar(stat = "identity", fill = "purple", width = 0.8) +
geom_text(aes(label = scales::comma(in_spotify_playlists)),
hjust = -0.1, size = 3.5, nudge_y = 0) + coord_flip() + ylim(0, y_limit) +labs(title = paste("Apparition en playlist par Chanson pour", chosen_artist), x = "Titres", y = "Nombre d'apparition en playlist") + theme_minimal() + theme(axis.text.x = element_text(angle = 0, hjust = 1))
Analyse :
De plus on constate qu’il apparait plus souvent en playlist sur spotify que Taylor Swift, son titre qui est le plus en playlist apparait plus de 43000 fois tandis que pour Taylor Swift c’est autour de 21000 fois. Ainsi cette comparaison nous permet de confirmer que Taylor Swift a une fanbase fidèle. Nous ne pouvons pas réellement tirer de conclusion quant à la fanbase de The Weeknd. On peut tout de même supposer qu’il ait possiblement une fanbase fidèle pour être présent une vingtaine de fois dans les artistes les plus présent dans les meilleurs classement et touche peu de nouveaux auditeurs malgré sa présence en playlist.
A présent concentrons nous sur Eminem:
#Nombre de stream
spotify_data$streams <- as.integer(spotify_data$streams)
#Choisir le nom de l'artiste
chosen_artist <- "Eminem"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$streams), ]
# Calculez la marge pour un affichage optimal
max_streams <- max(plot_data$streams)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, streams), y = streams)) +
geom_bar(stat = "identity", fill = "lightgreen", width = 0.8) + # Réduire la largeur des barres
geom_text(aes(label = scales::comma(streams)),
hjust = -0.1, size = 3.5, nudge_y = 0) + # Positionner légèrement à l'extérieur des barres
coord_flip() + # Retourner le graphique
ylim(0, y_limit) + # Ajouter de l'espace au-dessus des barres
labs(title = paste("Streams par Chanson pour", chosen_artist),
x = "Titres",
y = "Nombre de streams") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 1))
#Apparition de la chanson en playlist
spotify_data$in_spotify_playlists <- as.integer(spotify_data$in_spotify_playlists)
#coisir le nom de l'artiste
chosen_artist <- "Eminem"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$in_spotify_playlists), ]
# Calculez la marge
max_streams <- max(plot_data$in_spotify_playlists)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, in_spotify_playlists), y = in_spotify_playlists)) +
geom_bar(stat = "identity", fill = "purple", width = 0.8) +
geom_text(aes(label = scales::comma(in_spotify_playlists)),
hjust = -0.1, size = 3.5, nudge_y = 0) + coord_flip() + ylim(0, y_limit) +labs(title = paste("Apparition en playlist par Chanson pour", chosen_artist), x = "Titres", y = "Nombre d'apparition en playlist") + theme_minimal() + theme(axis.text.x = element_text(angle = 0, hjust = 1))
#Apparition de la chanson sur shazam
spotify_data$in_shazam_charts <- as.integer(spotify_data$in_shazam_charts)
#Choisir le nom de l'artiste
chosen_artist <- "Eminem"
artist_data <- spotify_data %>%
filter(grepl(chosen_artist, `artist(s)_name`, ignore.case = TRUE))
#Les données sont non nulles
if (nrow(artist_data) == 0) {
stop(paste("Aucune chanson trouvée pour l'artiste:", chosen_artist))
}
# Abréger ou tronquer les noms des chansons
plot_data <- artist_data %>%
mutate(track_name = ifelse(nchar(track_name) > 20,
paste0(substr(track_name, 1, 17), "..."),
track_name))
plot_data <- plot_data[!is.na(plot_data$in_shazam_charts), ]
# Calculez la marge
max_streams <- max(plot_data$in_shazam_charts)
y_limit <- max_streams + max_streams * 0.1
ggplot(plot_data, aes(x = reorder(track_name, in_shazam_charts), y = in_shazam_charts)) +
geom_bar(stat = "identity", fill = "pink", width = 0.8) +
# Réduire la largeur des barres
geom_text(aes(label = scales::comma(in_shazam_charts)),
hjust = -0.1, size = 3.5, nudge_y = 0) + coord_flip() + ylim(0, y_limit) + labs(title = paste("Apparition sur Shazam par Chanson pour", chosen_artist),
x = "Titres",
y = "Nombre d'apparition en playlist") +theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 1))
Analyse:
Le cas d’Eminem nous permet par contre de déduire un réel engagement et attachement de son public. Dans le premier graphique on Observe qu’il est dans le top 20 des artistes les plus présents dans le classement, il est vingtième ex-eaquo avec d’autres artistes tandis que dans le classement des artistes les plus streamés il est quatrième. Lorsqu’on regarde le nombre de streams plus précisement on remarque que cinq de ses titres sont chacun à plus d’un milliard d’e stream’écoute dans l’année. En comparaison Taylor Swift n’en a que deux. De plus ces titres sont tous sorti il y a plus de dix ans, ainsi bien qu’il soit possible que de nouveaux auditeurs l’écoutent, il est probable qu’il y ait une grosse base d’auditeurs qui écoute Eminem depuis des années. De plus peu des chansons sont présentes dans les classements de shazam et même si ils le sont le chiffre est très faible, par exemple Lose Yourself apparait sur shazam uniquement 51 fois alors qu’il est streamé plus d’un milliard de fois, tout en étant sorti il y a plus de 20 ans, en 2002.
En somme, nous voulions savoir si avec nos données nous pouvions évaluer l’engagement d’une fanbase, nos observations ne nous permette pas de conclure réellement nous pouvons uniquement établir des pistes quant à la fidélité des auditeurs d’un artiste.
On sait qu’il y a pleins de façons de faire de la musique et que la plupart des sons sont mixés. On utilise de nombreux outils qui peuvent modifier la voix, compléter les instruments ou parfois même les remplacer. Ce n’est d’ailleurs pas nouveau, la musique électronique date des années 50, ainsi nous voudrions simplement savoir si, et dans quelle proportion, les sons acoustiques ou alors des chansons totalement acoustiques ont une place dans le paysage musicale mainstream. Nous utiliserons pour savoir cela ces données: - acousticness_%: Amount of acoustic sound in the song - instrumentalness_%: Amount of instrumental content in the song
Nous supposons qu’il est peu probable que nous trouvions dans ce classement des musiques 100% acoustique, nous ne serions, au contraire, pas surpris de trouver de nombreuses chansons à 0%. Nous pensons qu’une majorité des chansons auront une part acoustique inférieure à 50%.
# Visualisation de la répartition de l'acousticness
ggplot(spotify_data, aes(x = `acousticness_%`, fill = after_stat(count))) +
geom_histogram(binwidth = 10, color = "black") +
labs(title = "Répartition de l'acousticness des chansons populaires en 2023",
x = "Acousticness (%)",
y = "Nombre de chansons") +
theme_minimal()
Analyse :
Le graphique présente la distribution des chansons populaires en fonction de leur caractère acoustique, mesuré en pourcentage. Voici les conclusions principales que l’on peut en tirer :
Dominance des chansons peu acoustiques : La majorité des chansons populaires ont une faible acousticness, avec un grand nombre d’entre elles situées dans la tranche de 0 à 25%. Cela indique une préférence pour des chansons qui ne reposent pas fortement sur des instruments acoustiques.
Répartition décroissante : À mesure que le pourcentage d’acousticness augmente, le nombre de chansons diminue. Les tranches de 25 à 50%, 50 à 75%, et 75 à 100% ont successivement moins de chansons, ce qui montre que les chansons hautement acoustiques sont moins courantes parmi les hits populaires de 2023.
Variabilité modérée : Bien qu’il y ait une nette préférence pour les chansons avec une faible acousticness, il y a tout de même une certaine variabilité. Il existe une représentation pour chaque tranche, ce qui montre que les chansons populaires en 2023 couvrent une gamme de caractéristiques acoustiques, même si celles-ci sont moins fréquentes.
# Filtrer les titres sortis à partir de l'année 2000
spotify_data_filtered <- spotify_data %>%
filter(released_year >= 2000)
# Sélectionner le titre avec le plus de succès pour chaque mois
most_successful_by_month <- spotify_data_filtered %>%
group_by(released_year, released_month) %>%
filter(streams == max(streams)) %>%
ungroup()
# Visualisation des titres les plus populaires par mois
ggplot(most_successful_by_month, aes(x = factor(released_month), y = streams, fill = factor(released_year))) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Titres les plus populaires par mois de sortie (à partir de l'année 2000)",
x = "Mois de sortie",
y = "Nombre de streams",
fill = "Année de sortie") +
theme_minimal()
Analyse :
Le graphique montre la répartition des streams des titres les plus populaires en fonction du mois de sortie, depuis l’an 2000. Voici les points essentiels de cette analyse :
Variabilité mensuelle : On observe une grande variabilité dans le nombre de streams en fonction des mois. Certains mois comme juin (6), juillet (7), août (8), et décembre (12) montrent des pics significatifs de streams, indiquant des périodes de sorties de titres très populaires.
Années de sortie diversifiées : Les couleurs variées indiquent une distribution des années de sortie sur l’ensemble des mois. Cela signifie qu’il n’y a pas une concentration spécifique d’années pour les mois où les titres populaires sont sortis, mais plutôt une dispersion à travers les deux décennies couvertes.
Périodes de haute popularité : Des pics remarquables de streams sont visibles en juin, juillet, août, et décembre, ce qui peut être associé à des périodes de vacances d’été et de fin d’année, moments où les gens écoutent probablement plus de musique.
Diversité des streams : Bien que certains mois montrent des pics plus élevés, chaque mois a des titres populaires provenant de différentes années, illustrant une variété et une constance dans la sortie de titres populaires au fil des ans.
En utilisant les données de BPM (battements par minute) fournies, nous pourrions examiner comment le rythme des musiques varie selon les saisons de l’année. Par exemple, nous pourrions regrouper les musiques selon leur saison de sortie et calculer la moyenne du BPM pour chaque saison. Cela nous permettrait de déterminer s’il existe des variations significatives dans le rythme des musiques en fonction des saisons.
Pour cette étude, nous utiliserions les données suivantes :
Nous pourrions alors supposer que cette étude pourrait démontrer que les musiques plus rythmées sont une tendance plus marquée pendant les saisons estivales.
couleurs <- c("Hiver" = "blue", "Printemps" = "green", "Été" = "red", "Automne" = "orange")
# Sélectionner les chansons les plus populaires (par exemple, les 1000 chansons avec le plus grand nombre de streams)
top_songs <- spotify_data %>%
arrange(desc(streams)) %>%
slice(1:1000)
# Comparaison du BPM moyen entre les saisons
ggplot(top_songs, aes(x = season, y = bpm, fill = season)) +
geom_violin(trim = FALSE) +
geom_boxplot(width = 0.2, fill = "white", color = "black") +
labs(title = "Comparaison du BPM moyen entre les saisons",
x = "Saison",
y = "BPM") +
scale_fill_manual(values = c("Hiver" = "blue", "Printemps" = "green", "Été" = "red", "Automne" = "orange")) +
theme_minimal()
Analyse :
Le graphique illustre une comparaison claire des BPM moyens entre les saisons : Hiver, Printemps, Été et Automne. Chaque saison est représentée par une couleur différente et présente une forme de distribution distincte. Les boîtes à moustaches superposées sur les violons indiquent la médiane et les quartiles pour chaque saison.
On remarque donc plusieurs choses :
Hiver : La distribution est relativement étroite, suggérant des tempos musicaux plus lents pendant cette saison.
Printemps : La distribution est plus large avec une médiane similaire à celle de l’hiver. La variabilité est plus grande, indiquant une diversité de tempos musicaux.
Été : La médiane est plus élevée, et la distribution est plus étalée. L’été est associé à des tempos plus rapides.
Automne : La distribution est similaire à celle du printemps.
Il est intéressant de noter que la médiane des BPM reste relativement constante pour chaque saison (environ 122 BPM), suggérant une certaine stabilité dans le rythme musical préféré pendant tout au long de l’année. Cependant, la variabilité dans la distribution des BPM indique des nuances dans les préférences de tempo, avec des saisons comme l’été montrant une tendance vers des tempos plus rapides.
En conclusion, cette analyse met en lumière l’impact saisonnier sur les caractéristiques audio des chansons populaires, en particulier en ce qui concerne le tempo. Comprendre ces variations saisonnières peut être précieux pour les professionnels de l’industrie musicale dans la création et la promotion de musique adaptée à chaque période de l’année. Cependant, ces graphiques ne peuvent pas clairement nous aider à prendre des décisions en raison des écarts trop peu importants.
Malheureusement, nous ne pouvons pas établir de corrélation entre le dataset de 2023 et 2022 puisque dans le dataset de 2022 nous n’avons pas de données sur les saisons. Nous ne pouvons donc pas comparer les deux années. De même, pour le dataset des chansons les moins populaires.
Pour explorer l’existence de caractéristiques audio communes dans les morceaux populaires en fonction des saisons, nous pourrions suivre une approche analytique qui implique l’utilisation des données audio fournies telles que le BPM, la tonalité, le mode, ainsi que les caractéristiques telles que la danceability, la valence, l’énergie, etc. Voici comment nous pourrions procéder :
1. Regroupement des titres par saison : - Nous regrouperont les titres en fonction de leur date de sortie pour chaque saison de l’année.
2. Analyse des caractéristiques audio : - Nous analyserons les caractéristiques audio des titres les plus populaires pour chaque saison. Cela pourrait inclure des mesures telles que le BPM, la tonalité, le mode, ainsi que des caractéristiques plus subjectives comme la danceability, la valence, l’énergie, etc.
3. Comparaison entre les saisons : - Nous comparerons ensuite les caractéristiques audio des titres les plus populaires entre les différentes saisons. Nous chercherons des tendances ou des similarités dans les caractéristiques audio des morceaux qui sont populaires à des moments spécifiques de l’année.
4. Interprétation des résultats : Enfin, nous interpréterons les résultats pour déterminer s’il existe des caractéristiques audio communes dans les morceaux populaires en fonction des saisons. Cela pourrait nous aider à identifier des tendances saisonnières dans les préférences d’écoute du public en ce qui concerne le style musical, le rythme et l’ambiance des morceaux.
Pour réaliser cette étude, nous allons avoir besoin des données suivantes :
En suivant cette méthodologie, nous pourrions obtenir des informations intéressantes sur la relation entre les caractéristiques audio des morceaux de musique et les saisons de l’année, ce qui pourrait être utile en tant que professionnel de l’industrie musicale dans la création et la promotion de musique adaptée à chaque période de l’année.
# Graphique : Comparaison de la danceability moyenne entre les saisons
ggplot(spotify_data_23_ordre_decroissant, aes(x = season, y = `danceability_%`, fill = season)) +
geom_boxplot() +
scale_fill_manual(values = couleurs)+
labs(title = "Comparaison de la danceability moyenne entre les saisons pour l'année 2023",
x = "Saison",
y = "Danceability (%)") +
theme_minimal()
#
ggplot(spotify_data, aes(x = `danceability_%`, fill = season)) +
geom_histogram(binwidth = 5, color = "black", position = "dodge") +
scale_fill_manual(values = couleurs) +
labs(title = "Histogramme de la danceability moyenne entre les saisons",
x = "Danceability (%)",
y = "Fréquence") +
facet_wrap(~season) +
theme_minimal()
# Graphique : Comparaison de la valence moyenne entre les saisons
ggplot(spotify_data_23_ordre_decroissant, aes(x = season, y = `valence_%`, fill = season)) +
geom_boxplot() +scale_fill_manual(values = couleurs)+
labs(title = "Comparaison de la valence moyenne entre les saisons",
x = "Saison",
y = "Valence (%)") +
theme_minimal()
Analyse : L’analyse des caractéristiques audio des chansons populaires en fonction des saisons a révélé plusieurs tendances intéressantes. Tout d’abord, nous avons observé des variations significatives dans la danceability moyenne et la valence moyenne entre les saisons. En été, les chansons ont tendance à avoir un pourcentage de danceability plus élevé, ce qui suggère une préférence pour des rythmes plus entraînants et propices à la danse pendant cette période. En revanche, en automne, la danceability moyenne est plus basse, indiquant une possible transition vers des styles musicaux moins rythmés ou plus contemplatifs.
De même, la valence moyenne est plus élevée pendant la saison d’hiver, ce qui suggère une préférence pour des chansons avec une ambiance plus positive et joyeuse pendant cette période. À l’inverse, la valence moyenne est plus basse en automne, ce qui pourrait refléter une atmosphère plus mélancolique ou introspective associée à cette saison.
Cependant, il est important de noter que ces observations peuvent être influencées par la présence de données aberrantes ou une distribution asymétrique des valeurs dans notre ensemble de données. Une analyse plus approfondie serait nécessaire pour comprendre pleinement les facteurs sous-jacents qui contribuent à ces variations saisonnières dans les caractéristiques audio des chansons populaires.
En fin de compte, cette analyse met en lumière l’importance de prendre en compte le contexte saisonnier lors de la création et de la promotion de musique. Comprendre les préférences d’écoute du public en fonction des saisons peut aider les professionnels de l’industrie musicale à adapter leur offre pour répondre aux besoins et aux attentes changeants des auditeurs tout au long de l’année. À ce stade, il est difficile de parvenir à des conclusions définitives en raison de la faible amplitude des variations observées dans les données. Il est donc préférable de ne pas se fier uniquement à ce graphique pour prendre des décisions.
La “danceability” d’une chanson est une caractéristique clé dans l’analyse musicale, particulièrement lorsqu’on examine son impact sur le succès d’une chanson sur des plateformes comme Spotify. La danceability mesure dans quelle mesure une chanson est adaptée à la danse, en se basant sur des éléments comme le tempo, la stabilité du rythme, la force des battements et la régularité générale. La valeur de la danceability varie de 0 à 100, avec des valeurs plus élevées indiquant que la chanson est plus dansante.
Notre objectif est de déterminer si la danceability influence significativement le succès d’une chanson, mesuré par le nombre de streams ou son classement dans les charts Spotify. Nous analyserons des données provenant de deux ensembles distincts : un pour l’année 2022 et un autre pour 2023. L’ensemble de données de 2023 se concentre sur le nombre de streams, tandis que celui de 2022 met l’accent sur le classement maximal des chansons.
Dans l’ensemble de données de 2023, nous traçons la danceability contre le nombre de streams pour observer toute corrélation apparente.
# Préparation des données
data_2023 <- spotify_data %>%
slice(1:100) %>%
mutate(danceability = as.numeric(`danceability_%`),
streams = as.numeric(streams)) %>%
drop_na(danceability, streams)
# Génération du graphique
ggplot(data_2023, aes(x = danceability, y = streams)) +
geom_point(color = "blue") +
theme_minimal() +
labs(title = "Corrélation entre Danceability et Streams (2023)", x = "Danceability", y = "Streams")
Observation: Le graphique en nuages de points montre une large dispersion des données, suggérant une faible corrélation entre la danceability et le nombre de streams.
Interprétation: La danceability ne semble pas être un déterminant majeur du succès en termes de streams pour l’année 2023. Le nombre de streams varie largement indépendamment de la danceability, indiquant que d’autres facteurs peuvent avoir une influence plus significative.
Ensuite, nous examinons l’ensemble de données de 2022 en traçant la danceability contre le classement maximal pour identifier toute tendance.
Observation: Les points de données sont également largement dispersés avec quelques clusters, montrant une légère tendance où des chansons plus dansantes tendent à obtenir de meilleurs classements.
Interprétation: Il y a une faible corrélation positive indiquant que des chansons avec une danceability plus élevée pourraient avoir de meilleurs classements, mais cette tendance n’est pas assez forte pour tirer des conclusions définitives. D’autres facteurs musicaux ou externes jouent probablement un rôle plus substantiel dans la détermination des classements.
En général, bien que la danceability puisse influencer le succès d’une chanson dans une certaine mesure, il est clair qu’elle n’est pas le seul facteur. Une analyse complète devrait considérer plusieurs attributs musicaux et peut-être des facteurs externes pour mieux comprendre les clés du succès musical.
Les heatmaps de corrélation pour les années 2023 et 2022 présentent une vue d’ensemble des relations entre différentes caractéristiques musicales et les mesures de succès des chansons sur Spotify. Ces visualisations nous permettent de comprendre quelles caractéristiques sont potentiellement interconnectées et leur impact sur le succès des chansons.
# Sélectionner les données et calculer les corrélations
corr_data_2023 <- spotify_data %>%
slice(1:100) %>%
select(danceability_ = `danceability_%`, valence_ = `valence_%`, energy_ = `energy_%`,
acousticness_ = `acousticness_%`, instrumentalness_ = `instrumentalness_%`,
liveness_ = `liveness_%`, speechiness_ = `speechiness_%`, streams) %>%
mutate(across(everything(), as.numeric))
# Calculer la matrice de corrélation
corr_matrix_2023 <- cor(corr_data_2023, use = "complete.obs")
# Transformer la matrice de corrélation pour la visualisation
melted_corr_matrix_2023 <- melt(corr_matrix_2023)
# Empêcher les avertissements de réattachement du package
detach("package:reshape2", unload=TRUE)
# Générer la heatmap
ggplot(melted_corr_matrix_2023, aes(Var1, Var2, fill = value)) +
geom_tile() +
scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0, limit = c(-1, 1)) +
theme_minimal() +
labs(title = "Heatmap des corrélations (2023)", x = "", y = "")
Les heatmaps de corrélation montrent les relations entre différentes caractéristiques musicales pour les années 2023 et 2022. Voici quelques points d’intérêt et interprétations des résultats :
Les heatmaps de corrélation fournissent une vue d’ensemble des interrelations entre différentes caractéristiques musicales et leur impact potentiel sur le succès des chansons. Bien que la danceability ne soit pas fortement corrélée avec les mesures de succès (streams et classement), d’autres caractéristiques comme l’énergie, la valence, et l’acousticness montrent des corrélations intéressantes. Ces insights peuvent être précieux pour les artistes et producteurs cherchant à optimiser certaines caractéristiques musicales pour maximiser le succès de leurs chansons sur Spotify.
Maintenant que nous avons étudié les caractéristiques des chansons les plus populaires, il est important de s’interroger sur les chansons qui sont le moins écoutées. En effet, cette étude pourrait nous fournir des informations précieuses sur l’industrie musicale et ses rouages.
Pour répondre à cette problématique, nous avons utilisé le logiciel Tableau. En effet, Tableau est un logiciel de visualisation de données qui permet de créer des graphiques et des tableaux de bord interactifs. Facile à utiliser, il aide les utilisateurs à explorer leurs données et à prendre des décisions éclairées grâce à des visualisations claires et percutantes. Grâce à celui-ci, nous avons pu mener à bien notre démarche exploratoire et ainsi finaliser notre analyse.
Lors de cette étude, nous avons utilisé deux jeux de données différents :
Cette comparaison va nous permettre de tirer des conclusions réalistes à partir des différentes visualisations.
Nous avons précédemment étudié l’influence du tempo sur la popularité d’une musique. Nous avons conclu que les chansons les plus populaires se situaient entre 90 et 130 BPM. Nous nous sommes alors demandés si, parmi les chansons les moins populaires, un tempo particulier était plus représenté.
Pour réaliser nos graphiques, nous avons utilisé les variables suivantes :
Nous avons été amenés à créer une nouvelle variable (interval_tempo) afin de répartir correctement chaque musique dans l’intervalle qui lui correspondait et de faciliter la lecture graphique.
Nous pouvons voir ici que le graphique de répartition du tempo sur les meilleures chansons de 2022 corrobore bien le résultat trouvé plus tôt dans cette étude. Le BPM est centré entre 90 et 130.Ce tempo particulier semble correspondre à un équilibre optimal qui attire l’audience et favorise la popularité des morceaux musicaux. Cela suggère que les artistes et producteurs peuvent utiliser ce range de BPM comme une référence pour créer des chansons potentiellement plus attrayantes pour un large public.
En contraste, lorsque l’on examine la répartition du tempo des chansons moins populaires, une dispersion plus large est observable, avec la majorité des tempos variant entre 70 et 150 BPM. Cette variabilité pourrait indiquer une diversité stylistique ou une tentative de se démarquer parmi une concurrence moins régulée. Cependant, pour les chansons ayant un tempo similaire à celui des hits (90-130 BPM) mais ne réussissant pas à atteindre une popularité comparable, cela suggère que d’autres aspects musicaux ou extra-musicaux pourraient jouer un rôle déterminant dans leur réception par le public.
Par conséquent, bien que le tempo entre 90 et 130 BPM semble offrir un avantage initial en termes de popularité potentielle, sortir de cette plage constitue un véritable risque. Les graphiques de répartition mettent en lumière cette réalité en montrant une diminution de la fréquence des chansons en dehors de cette zone, ce qui pourrait refléter une moindre acceptation par le public. Ainsi, ces observations encouragent à considérer le tempo comme un élément clé, mais non exclusif, de la recette du succès musical.
Nous allons maintenant nous intéresser au mode en musique. Le mode désigne l’ensemble des notes utilisées pour créer une mélodie et des accords. Le mode majeur est associé à une ambiance lumineuse et joyeuse, utilisant une échelle où la tonique et la tierce majeure créent une sensation de stabilité et de positivité. En revanche, le mode mineur crée une atmosphère plus sombre et mélancolique en utilisant une tierce mineure, produisant un son plus intense et émotionnel. Ces choix de mode ont une influence profonde sur l’émotion et le style d’une composition musicale.
Pour réaliser nos graphiques, nous avons utilisé les variables suivantes :
Nous observons des similitudes entre nos deux graphiques. En effet, le mode majeur prédomine tant dans les morceaux populaires de 2022 que dans ceux moins populaires. Cela suggère qu’il n’existe pas de schéma clair garantissant la popularité d’une musique basée uniquement sur le choix du mode. Cependant, nous pouvons recommander de préférer le mode majeur pour suivre la tendance majoritaire et minimiser les risques.
Nous nous intéressons maintenant à la danceability d’une musique. En effet, comme mentionné précédemment, la “danceability” d’une chanson est une caractéristique essentielle dans l’analyse musicale. Cette mesure évalue à quel point une chanson est adaptée à la danse en prenant en compte des éléments tels que le tempo, la stabilité du rythme, l’intensité des battements et la régularité globale. La danceability est notée sur une échelle de 0 à 100, les valeurs plus élevées indiquant une chanson plus propice à la danse.
Pour réaliser nos graphiques, nous avons utilisé les variables suivantes :
Nous avons été amenés à créer une nouvelle variable (interval_danceability) afin de répartir correctement chaque musique dans l’intervalle qui lui correspondait et de faciliter la lecture graphique.
De la même manière que pour le tempo, l’analyse de la danceability des chansons révèle des tendances distinctes entre celles qui sont populaires et celles qui le sont moins en 2022. Les chansons populaires montrent une préférence marquée pour certaines valeurs de danceability. En effet, la majorité de ces chansons sont centrées autour d’une valeur spécifique, principalement dans l’intervalle de 70 à 80 sur l’échelle de mesure de la danceability. Cette concentration suggère une tendance à optimiser la capacité des morceaux à inciter à la danse, avec un rythme stable et une intensité de battement adaptée.
En revanche, pour les chansons moins populaires, la danceability présente une distribution plus dispersée. Ces chansons montrent une variabilité plus large dans leurs valeurs de danceability, couvrant un intervalle qui va de 50 à 80. Cette diversité peut refléter une tentative de diversification stylistique ou une exploration de nouveaux terrains musicaux moins conventionnels, mais aussi une adaptation à des goûts et préférences plus spécifiques parmi les auditeurs.
Ces observations soulignent l’importance de la danceability comme facteur influençant la réception et la popularité d’une musique sur des plateformes de diffusion comme Spotify, où la facilité avec laquelle une chanson invite à la danse peut jouer un rôle crucial dans son attrait pour un large public.
Enfin, nous nous sommes intéressés à la durée d’une musique. Lorsqu’il s’agit d’évaluer les facteurs qui influencent la popularité d’une œuvre musicale, la durée représente souvent une considération cruciale. Cette caractéristique peut jouer un rôle significatif dans la façon dont une chanson est perçue et consommée par le public. En effet, une durée plus longue ou plus courte peut affecter l’engagement des auditeurs, leur rétention d’attention et même leur satisfaction globale à l’écoute. Ainsi, comprendre comment la durée impacte la réception d’une musique est essentiel pour saisir les dynamiques de son succès.
Pour réaliser nos graphiques, nous avons utilisé les variables suivantes :
Nous avons été amenés à convertir la durée en minute et créer une nouvelle variable (interval_duration) afin de répartir correctement chaque musique dans l’intervalle qui lui correspondait et de faciliter la lecture graphique.
Nous pouvons observer un schéma clair pour les musiques les plus populaires en 2022 : la grande majorité des chansons se situent dans l’intervalle de 2 à 4 minutes. Cette tendance marquée parmi les chansons les plus appréciées de l’année souligne une préférence générale pour des compositions à la fois concises et captivantes. Cette durée semble idéale pour maintenir l’attention des auditeurs tout en permettant le développement d’une structure musicale complète et mémorable.
En revanche, dans les chansons moins populaires, bien que la plupart se trouvent également dans l’intervalle de 2 à 4 minutes, une proportion significative s’étend au-delà de cette plage. Cette observation révèle une différence notable par rapport aux chansons les plus populaires, suggérant une plus grande diversité dans les approches créatives ou une exploration de formats moins conventionnels par les artistes.
Nous pouvons donc conclure que la durée d’une chanson joue un rôle crucial dans sa perception par le public. Il semble moins risqué de se conformer à l’intervalle de durée mis en avant par cette étude. Cependant, il est également important de noter que des stratégies alternatives peuvent trouver leur place sur le marché musical. Ainsi, la durée demeure un facteur clé à prendre en compte lors de la création et de la promotion de nouvelles musiques.
Dans le cadre de ce projet, nous avons entrepris une démarche exploratoire approfondie sur l’ensemble des données disponibles dans nos datasets. En nous plaçant dans la perspective d’une maison de disques cherchant à produire le prochain hit, nous avons examiné les différentes problématiques associées à la popularité des chansons. Cette approche nous a permis de discerner les caractéristiques des morceaux les plus populaires en 2022 et 2023, tout en garantissant l’objectivité de nos conclusions en menant une analyse parallèle des chansons les moins populaires sur Spotify.
L’étude des chansons les plus populaires a révélé des tendances et des patterns récurrents, tels que des durées spécifiques, des tempos optimaux, et des niveaux de danceability précis. En parallèle, l’analyse des morceaux moins populaires a offert une perspective contrastée, mettant en évidence des écarts et des variations qui peuvent expliquer leur moindre succès.
Il est essentiel de noter qu’il n’existe pas de recette miracle pour assurer la popularité d’une chanson. Les goûts du public sont variés et en constante évolution, influencés par de nombreux facteurs culturels et contextuels. Toutefois, nos résultats mettent en évidence des tendances et des schémas distincts qui peuvent servir de guide. Suivre ces indications pourrait augmenter les chances de créer une chanson qui résonne bien avec le public.
En somme, bien que la créativité et l’originalité demeurent des éléments cruciaux dans la production musicale, une compréhension approfondie des tendances actuelles et des préférences du public peut fournir un avantage stratégique. En s’appuyant sur les résultats de notre étude, une maison de disque peut donc affiner son approche et maximiser les chances de succès de ses futures productions musicales.
En prenant du recul sur notre jeu de données, nous constatons qu’il offre une base solide pour aborder les questions que nous avons précédemment identifiées. Les informations sur les titres de musique, les artistes et les mesures de popularité nous permettent d’explorer divers aspects des tendances musicales et du succès des morceaux.
Cependant, il est important de reconnaître que notre jeu de données présente certaines limites, notamment en ce qui concerne les aspects géographiques. En raison de l’absence d’informations sur la localisation géographique des auditeurs et des artistes, nous ne pouvons pas explorer les variations régionales dans les préférences musicales ou les habitudes d’écoute. Cette lacune réduit notre capacité à obtenir une image complète et nuancée des tendances musicales à travers différentes régions.
Nous remarquons également les limites de notre jeu de données en raison du manque d’informations contextuelles. En effet, nos recherches ont fourni de précieuses informations sur l’industrie musicale, mais elles ont également soulevé d’autres interrogations que nous n’avons malheureusement pas pu approfondir. Par exemple, les fêtes de fin d’année pourraient-elles être la cause de l’écoute de musique joyeuse plutôt que mélancolique en hiver ?
Toutefois, l’émergence de nouvelles questions, même non résolues, s’inscrit parfaitement dans la démarche exploratoire entreprise dans le cadre de ce projet. Ces interrogations offrent des pistes pour des recherches futures et mettent en lumière l’importance d’un contexte plus riche pour une analyse encore plus approfondie de la popularité musicale.